package com.baixun.gassystem.service;

import com.baixun.gasentity.dto.AlarmDTO;
import com.baixun.gasentity.dto.AlarmStatisticsDTO;
import com.baixun.gasentity.dto.AlarmTrendDTO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;

import javax.servlet.ServletOutputStream;
import java.util.List;

/**
 * @program: 上海燃气驾驶舱
 * @description: 报警列表业务层
 * @author: yesong
 **/
public interface AlarmService {

    /**
     * 报警列表实时监控


    /**
     * 报警列表分页查询
     */
    IPage<AlarmDTO> selectAlarmList(AlarmDTO requestDTO);

    /**
     * 无人机列表展示
     */

    IPage<AlarmDTO> selectUavList(AlarmDTO requestDTO);


    /**
     * 执法仪列表展示
     */
    IPage<AlarmDTO> selectFaList(AlarmDTO requestDTO);

    /**
     * 导出报警列表为excel
     */
    void exportAlarmList(AlarmDTO requestDTO, ServletOutputStream outputStream);


    /**
     * 导出无人机报警数据为excel
     */
    void exportUvaToExcel(ServletOutputStream outputStream,AlarmDTO requestDTO);

    /**
     * 导出执法仪报警数据为excel
     */
    void exportFaToExcel(ServletOutputStream outputStream,AlarmDTO requestDTO);

    /**
     * 报警统计数据
     * @return
     * @return
     */
    List<AlarmStatisticsDTO> getAlarmStatistics();

    /**
     * 视频报警统计
     */
    List<AlarmStatisticsDTO> getVideoStatistics();
    /**
     * 无人机报警统计
     */
    List<AlarmStatisticsDTO> getDroneStatistics();

    /**
     * 执法仪报警统计
     */
    List<AlarmStatisticsDTO> getFaStatistics();

    /**
     * 报警趋势
     */
    List<AlarmTrendDTO> getAlarmTrend(@Param("startTime") String startTime, @Param("endTime") String endTime);



    /**
     * 视频报警趋势
     */
    List<AlarmTrendDTO> getVideoTrend(@Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * 无人机报警趋势
     */
    List<AlarmTrendDTO> getDroneTrend(@Param("startTime") String startTime, @Param("endTime") String endTime);


    /**
     * 执法仪报警趋势
     */
    List<AlarmTrendDTO> getFaTrend(@Param("startTime") String startTime, @Param("endTime") String endTime);
}
